package pe.com.cineplanet.dao.dao.impl;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import pe.com.cineplanet.bean.cineplanet.Constantes;
import pe.com.cineplanet.bean.cineplanet.UsuarioWeb;
import pe.com.cineplanet.dao.dao.UsuarioWebDAO;

public class UsuarioWebDAOImpl implements UsuarioWebDAO{
	
	protected JdbcTemplate jdbcTemplate;

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}
	
	public boolean registrar(UsuarioWeb usuarioWeb) {
		System.out.println("Registrar Usuario Web");
		System.out.println("---------------------------------");
		StringBuffer sql =  new StringBuffer();
		sql.append("insert into t_usuario_web ");
		sql.append("(login, nombre, correo, password, estado) ");
		sql.append("values (?, ?, ?, ?, ?)");
		
		Object[] params = new Object[]{ usuarioWeb.getLogin(), usuarioWeb.getNombre(), usuarioWeb.getCorreo(), usuarioWeb.getPassword(), usuarioWeb.getEstado()  };
		
		int result = jdbcTemplate.update(sql.toString(), params);
		System.out.println((result>0)?"Registrado!":"No se registro!");
		System.out.println();
		return result>0;
	}
	
	public UsuarioWeb buscar(String login){
		String sql = "select login, nombre, correo from T_USUARIO_WEB where login=?";
		Object[] params = new Object[]{ login };
		
		try{
			return (UsuarioWeb) jdbcTemplate.queryForObject(sql, params, new RowMapper(){

				public UsuarioWeb mapRow(ResultSet rs, int arg1) throws SQLException {

					return new UsuarioWeb(rs.getString(1), rs.getString(2), rs.getString(3));
					
				}
				
			});
		}catch(EmptyResultDataAccessException e){
			return null;
		}
	}

	public boolean bloquear(String login) {
		System.out.println("Bloquear Usuario Web:" + login);
		System.out.println("---------------------------------");
		StringBuffer sql =  new StringBuffer();
		sql.append("update t_usuario_web ");
		sql.append(" set estado = ?");
		sql.append(" where login = ? ");
		
		Object[] params = new Object[]{ Constantes.ESTADO_USUARIO_BLOQUEADO, login  };
		
		int result = jdbcTemplate.update(sql.toString(), params);
		System.out.println((result>0)?"bloquedo!":"No se bloquedo!");
		System.out.println();
		return result>0;
	}

}
